# -*- coding：utf-8 -*-
"""
@Time:2024-08-1715:03
@Auth:泛彼泊舟
@File:2、类的实例和实例方法的封装.py
@IDE:PyCharm
@模块功能：xxx
"""
# 定义类：使用class关键字类名：
class Hero:
    # 在类中定义实例属性需要使用魔法方法：__init__构造方法
    # 魔法方法：以双下划线开头或结尾，而且在特殊情况下自动调用执行
    # init魔法方法会在对象被创建的时候自动执行，也称为构造方法
    # self代表类创建出来的对象
    def __init__(self):
        # 在类中封装对象实例属性
        # - 名字
        self.name = "百里守约"
        # - 生命值
        self.hp = 800
        # - 魔法值
        self.mp = 500

    # 行为和操作封装成实例方法
    # 在类中定义的函数叫做实例方法
    # 实例方法和函数的区别：实例方法一定有一个固定的参数self,代表对象本身
    def attack(self):
        print("英雄发起普通攻击")

    def move(self):
        print("执行移动英雄操作")

    def back_city(self):
        print("执行英雄回城操作")

# 创建对象
hero1 = Hero()
# 对象一旦被创建，自动执行init方法，获取对象的实例属性
# 对象可以调用实例属性：对象名.属性名
print(hero1.name)
print(hero1.mp)

# 对象可以调用实例方法：对象名.方法名（）
hero1.attack()
hero1.move()
hero1.back_city()
# 类中封装的实例属性和实例方法，通过该类被创建的对象就拥有所有的实例属性和实例方法